package prices

import "yundian/internel/pkg/dingo"

// PriceModel 设备套餐-可根据不同网点定制
type PriceModel struct {
	Id           int    `gorm:"column:id" json:"id"`
	ProductId    string `gorm:"column:product_id" json:"productId"`
	DeviceTypeId int    `gorm:"column:device_type_id" json:"deviceTypeId"`
	PlaceId      int    `gorm:"column:place_id" json:"placeId"`
	UseDuration  int    `gorm:"column:use_duration" json:"useDuration"` //套餐使用时长
	PayMoney     int64  `gorm:"column:pay_money" json:"payMoney"`       //套餐使用金额
	SetMealNum   int8   `gorm:"column:set_meal_num" json:"setMealNum"`
	Status       int8   `gorm:"column:status" json:"status"`
	RuleName     string `gorm:"column:rule_name" json:"ruleName"`
	IsRecommend  int8   `gorm:"column:is_recommend" json:"isRecommend"`
	Priority     int8   `gorm:"column:priority" json:"priority"`

	Deposit          int64 `gorm:"column:deposit" json:"deposit"`                     // 押金 - 分
	BaseTimes        int   `gorm:"column:base_times" json:"baseTimes"`                // 最少使用时长-分钟
	BasePrice        int64 `gorm:"column:base_price" json:"basePrice"`                // 最低使用费用-分
	PayInterval      int   `gorm:"column:pay_interval" json:"payInterval"`            // 每使用-分钟
	PayIntervalPrice int64 `gorm:"column:pay_interval_price" json:"payIntervalPrice"` // 每使用多少分钟需要消费多少金额-分
	FreeTimes        int   `gorm:"column:free_times" json:"freeTimes"`                // 免费时长-分钟
	MaxTime          int   `gorm:"column:max_time" json:"maxTime"`                    // 最大使用时长-分钟
	MaxPayPrice      int64 `gorm:"column:max_pay_price" json:"maxPayPrice"`           // 日最大消费-分
	PayTactics       int   `gorm:"column:pay_tactics" json:"payTactics"`              // 消费计算策略 1自然日 2 24小时

	Name string `gorm:"column:name" json:"name"` //计费规则名称

	CreateAt dingo.Time `gorm:"column:create_at" json:"createAt"`
}

type PriceWithDeviceType struct {
	DeviceTypeId int    `gorm:"column:device_type_id" json:"deviceTypeId"`
	PlaceId      int    `gorm:"column:place_id" json:"placeId"`
	DeviceName   string `gorm:"column:device_name" json:"deviceName"`
	SharedMode   string `gorm:"column:shared_mode" json:"sharedMode"` // 共享模式   pcl 共享充电线
	// XC-PCL-5-001   骁匠5键密码线充
	// XC-PCL-5-002   天海5键单套餐密码线充
	// XJ-CDB-08A01   骁匠8口A01型共享充电宝
	DeviceModelId string     `gorm:"column:device_model_id" json:"deviceModelId"` // 设备型号
	FeeMode       int8       `gorm:"column:fee_mode" json:"feeMode"`              // 费用模式  1 预付费 2 普通
	CreateAt      dingo.Time `gorm:"column:create_at" json:"createAt"`
}

func New() *PriceModel {
	return &PriceModel{}
}

func (model *PriceModel) Mutate(attrs ...PriceAttr) *PriceModel {
	PriceAttrs(attrs).Apply(model)
	return model
}

func (model *PriceModel) GetTableName() string {
	return "prices"
}
